//
//  USDKTypeDefine.h
//  UPaySDK
//
//  Created by xu yao on 2021/3/4.
//

#ifndef USDKTypeDefine_h
#define USDKTypeDefine_h

/**
 *  平台类型
 */
typedef NS_ENUM(NSUInteger, USDKPlatformType) {
    /**
     *  微信支付
     */
    USDKPlatformTypeWeChat          = 0,
    /**
     *  支付宝支付
     */
    USDKPlatformTypeAliPay          = 1,
    /**
     *  黔农云支付
     */
    USDKPlatformTypeGZRCloud         = 2,
};

/*! @brief 错误码
 *
 */
typedef NS_ENUM(NSUInteger, UWXErrCode) {
    UWXSuccess           = 0,    /**< 成功    */
    UWXErrCodeCommon     = -1,   /**< 普通错误类型    */
    UWXErrCodeUserCancel = -2,   /**< 用户点击取消并返回    */
    UWXErrCodeSentFail   = -3,   /**< 发送失败    */
    UWXErrCodeAuthDeny   = -4,   /**< 授权失败    */
    UWXErrCodeUnsupport  = -5,   /**< 微信不支持    */
};

/*! @brief 错误码
 *
 */
typedef NS_ENUM(NSUInteger, UPayErrCode) {
    UPaySuccess           = 0,    /**< 成功    */
    UPayFail              = 1,    /**< 失败   */
};

/**
 *  配置支付平台回调处理器
 *
 *  @param platformType 需要初始化的分享平台类型
 *  @param appInfo      需要初始化的分享平台应用信息
 */
typedef void(^USDKConfigurationHandler) (USDKPlatformType platformType, NSMutableDictionary *appInfo);

/**
 *  导入原平台SDK回调处理器
 *
 *  @param platformType 需要导入原平台SDK的平台类型
 */
typedef void(^USDKImportHandler) (USDKPlatformType platformType);

/**
 * 支付成功/失败/取消的回调方法
 */
typedef void(^USDKPayResultHandler) (USDKPlatformType platformType, NSInteger resultCode, id error);

/**
 * 微信支付的回调
 */
typedef void(^USDKWXPayResultHandler) (UPayErrCode resultCode, id error);
#endif /* USDKTypeDefine_h */
